// pages/search/search.js
const db = wx.cloud.database();
let t = null;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 延迟响应
    search: '',
    // 及时响应
    _search: '',
      // 搜索历史
      searchLog: [],
      //查询结果
      searchList: []


  },

  clickLog(e) {
     const { name } = e.currentTarget.dataset;
     wx.navigateTo({
       url: `../classifyList/classifyList?text=${name}&from=search`,
     })

  },

  toDetail(e){
    const login = wx.getStorageSync('login');
    if (login) {
      const { item } = e.currentTarget.dataset;
      wx.navigateTo({
        url: `../infoDetail/infoDetail?info=${JSON.stringify(item)}`,
      })
    }else{
      wx.showToast({
        title: '请登录',
        icon: 'none'
      })
    }
    
  },

  deleteLog(){
    // 删除视图内的数据
     this.setData({
        searchLog: []
     });
    //  删除缓存内的数据
     wx.removeStorageSync('searchLog');
  },

  deleteSearch(){
    this.setData({
        search: '',
        _search: '',
        searchList: []
    })
  },

  getSearch(e){
    // 实现防抖
    this.setData({
      _search: e.detail.value
    })
    if (t) clearTimeout(t);
    t = setTimeout(() => {
      this.setData({
        search: e.detail.value
      });
      if (e.detail.value.trim().length > 0) {
        let searchLog = wx.getStorageSync('searchLog');
        if (searchLog){
          // 缓存有值
          searchLog.unshift(e.detail.value);
        } else {
            // 没有缓存
            searchLog = [e.detail.value];
        }
        wx.setStorageSync('searchLog', searchLog);
        this.setData({
          searchLog
        });
      }

      // 模糊查询
      db.collection('publish').where({
        name: db.RegExp({
          regexp: e.detail.value.trim(),
          options:'i'
        })
      }).get({
        success: (res) => {
          const { data } = res;
          this.setData({
            searchList: data
          })
        }
      })
    }, 900);
    //  当你输入的内容，在数据库中能查到，就切换视图
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const searchLog = wx.getStorageSync('searchLog');
    this.setData({
      searchLog
    })

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})